package com.dunshanasync.com.dunshan;

/**
 * @author liwen406
 * @program: dunshan-pef
 * @description: 引用计算法
 * @date 2022-01-12 12:51:11
 */
public class JvmTestDome {
    public Object instance = null;
    private static final int _1MB = 1024 * 1024;

    /**
     * 这个成员属性的唯一意义就是占点内存， 以便能在GC日志中看清楚是否有回收过
     */
    private byte[] bigSize = new byte[2 * _1MB];

    public static void testGC() {
        JvmTestDome objA = new JvmTestDome();
        JvmTestDome objB = new JvmTestDome();
        objA.instance = objB;
        objB.instance = objA;
        objA = null;
        objB = null;
        // 假设在这行发生GC，objA和objB是否能被回收？
        System.gc();
    }

    public static void main(String[] args) {
        testGC();
    }
}
